﻿using Runtime.Services.Battle;

namespace Runtime.Models {

    /// <summary>
    /// 单元格数据集
    /// </summary>
    public interface IDFR_ReadOnlyBattleCellDictionaryModelBase : IDFR_ReadOnlyDictionaryModel<DFR_BattleCellIndex, IDFR_BattleCellModelBase> {

        new IDFR_BattleCellDictionaryModelBase AsReadWrite();
    }

    /// <summary>
    /// 单元格数据集
    /// </summary>
    public interface IDFR_BattleCellDictionaryModelBase : IDFR_ReadOnlyBattleCellDictionaryModelBase, IDFR_DictionaryModel<DFR_BattleCellIndex, IDFR_BattleCellModelBase> {
    }

    [Implement(typeof(IDFR_ReadOnlyBattleCellDictionaryModelBase))]
    [Implement(typeof(IDFR_ReadOnlyDictionaryModel<DFR_BattleCellIndex, IDFR_BattleCellModelBase>))]
    [Implement(typeof(IDFR_BattleCellDictionaryModelBase))]
    [Implement(typeof(IDFR_DictionaryModel<DFR_BattleCellIndex, IDFR_BattleCellModelBase>))]
    public class DFR_BattleCellDictionaryModelBase : DFR_DictionaryModel<DFR_BattleCellIndex, IDFR_BattleCellModelBase>,
        IDFR_ReadOnlyBattleCellDictionaryModelBase, IDFR_BattleCellDictionaryModelBase {

        public new IDFR_BattleCellDictionaryModelBase AsReadWrite() => this;
    }
}
